/**
* @program: Go
*
* @description:接口返回定义
*
* @author: Mr.chen
*
* @create: 2020-10-14 17:20
**/
package response

import (
	"ydd-im/util/logger"
	"fmt"
	"github.com/gin-gonic/gin"
	"github.com/gorilla/websocket"
	"net/http"
)

type ApiResp struct {
	ErrorNo  int64       `json:"code"`
	ErrorMsg string      `json:"msg"`
	Data     interface{} `json:"data,omitempty"`
	Rows     interface{} `json:"rows,omitempty"`
	Total    interface{} `json:"total,omitempty"`
	PageArgs interface{} `json:"pageArgs,omitempty"`
}
type PageArgs struct { // 分页返回参数
	Pagecount int64 `json:"pagecount,omitempty"`
	Total     int64 `json:"total,omitempty"`
	Page      int64 `json:"page,omitempty"`
}

func RespFail(c *gin.Context, resp ApiResp, err error) {
	//Logger.Infof("[resp fail] %s--%+v", resp.ErrorMsg, err)
	c.JSON(http.StatusOK, resp)
}

func RespOK(c *gin.Context, resp ApiResp) {
	//Logger.Infof("[resp ok] %+v", resp.Data)
	c.JSON(http.StatusOK, resp)
}

type Response struct {
	Code    int         `json:"code"`
	Message string      `json:"msg"`
	Data    interface{} `json:"data,omitempty"`
}

func ResponseJsonOk(c *gin.Context, response Response) {
	//Logger.Infof("[resp ok] %+v",response.Data)
	logger.Lg.Info(fmt.Sprintf("[resp ok] %+v", response.Data))
	c.JSON(200, response)
}
func ResponseJsonFail(c *gin.Context, response Response) {
	//Logger.Infof("[resp fail] %s", response.Message)
	logger.Lg.Info(fmt.Sprintf("[resp fail] %s", response.Message))
	c.JSON(200, response)
}
func ResponseConnJsonOk(conn *websocket.Conn, response Response) (err error) {
	err = conn.WriteJSON(response)
	return
}
func ResponseConnJsonFail(conn *websocket.Conn, response Response) (err error) {
	logger.Lg.Info(fmt.Sprintf("[resp fail] %s", response.Message))
	err = conn.WriteJSON(response)
	return
}

type WsData struct {
	MessageId  string      `json:"messageId,omitempty"`
	SendUserId string      `json:"sendUserId,omitempty"`
	Code       int         `json:"code"`
	Message    string      `json:"msg"`
	Data       interface{} `json:"data,omitempty"`
}

func ResponseConnJsonRender(conn *websocket.Conn, wsDat WsData) error {
	return conn.WriteJSON(wsDat)
}

type MessageData struct {
	MessageLogId int    `json:"messageLogId"` // Id
	ToUserId     int    `json:"toUserId"`     // 接收者ID
	Media        int    `json:"media"`        // 消息按照什么样式展示文本1，语音2，图片3
	Pic          string `json:"pic"`          // 预览图片
	Url          string `json:"url"`          // 服务的URL
	MessageType  int    `json:"messageType"`  // 群聊还是私聊，11群聊
	SendTime     string `json:"sendTime"`     // 发送时间
	Content      string `json:"content"`      // 内容
	SendUsername string `json:"sendUserName"` // 发送者名称
	SendUserId   int    `json:"sendUserId"`   // 发送者Id
	Dstid        int    `json:"dstid"`   	  // 目标者ID
}
